package com.innovate.cms.modules.qs.dao.order;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.innovate.cms.common.persistence.CrudDao;
import com.innovate.cms.common.persistence.annotation.MyBatisDao;
import com.innovate.cms.modules.qs.entity.order.DbOrder;

/**
 * 订单
 * 
 * @author shifangfang
 * @date 2017年12月28日 下午3:14:47
 */
@MyBatisDao
public interface DbOrderDao extends CrudDao<DbOrder> {

	int saveOrder(DbOrder dbOrder);

	/**
	 * 获取用户订单列表
	 * 
	 * @param consumerUid
	 * @return
	 */
	List<DbOrder> orderList(String consumerUid);

	/**
	 * 商家核销订单
	 * 
	 * @param tradeNo
	 * @param consumeState
	 * @return
	 */
	int verifyConsumption(@Param("tradeNo") String tradeNo, @Param("consumeState") int consumeState);

	/**
	 * 获取商户订单列表
	 * 
	 * @param businessUid
	 * @return
	 */
	List<DbOrder> businessOrderList(String businessUid);

	/**
	 * 订单/核销详情
	 * 
	 * @param tradeNo
	 */
	DbOrder orderInfo(String tradeNo);

	/**
	 * 把预支付订单状态改为成功支付
	 * 
	 * @param tradeNo
	 * @param orderState
	 * @param transactionId
	 * @return
	 */
	int updateOrderState(@Param("tradeNo") String tradeNo, @Param("orderState") int orderState, @Param("transactionId") String transactionId);


}
